import 'package:aio/aio.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:app/generated/app_strings.dart';
import 'package:app/src/ui/app_ui.dart';
import 'package:app/src/ui/route/works/public/items/ui_base.dart';
import 'package:app/src/ui/route/works/public/items/ui_card.dart';

import '../../../../../http/bean/http_data.dart';
import '../../../../../http/model/submit_model.dart';
import '../../../../../http/url.dart';
import '../../../../../manager/audit_manager.dart';
import '../../../../../manager/file_manager.dart';
import '../../../../dialog/dailog.dart';


///导出
class UiExport {
  ///data 附件
  ///isShowEmpty 信息为空时，是否显示信息为空。true 显示信息为空，false 什么都不显示。
  static Widget build(BuildContext context
      ) {
    List<Widget> children = [];
    children.add(UiBase.title(context, AppStrings.of(context).Export)); //导出
    children.add(UiBase.itemWithButon(
        context, AppStrings.of(context).ExportDocumentsPDF,(){
          exportDocuments(context);
    } )); //导出为PDF
    var column = UiBase.column(context, children);
    var card = UiCard.build(context, column);
    return card;
  }


  //导出单据类型
  static var _type = "";

  //提交数据
  static SubData? _subData = null;

  ///导出单据
  static exportDocuments(
      BuildContext context) {
    AuditManager.getAuditManager().setDetailsWithAuto(true,
        "review_submitted_export.dart"); //fixme 在审核详情页面,正在提交的时候，不要显示通知信息。没有提交的时候，还是要显示的。
    if (_subData == null) {
      _subData = SubData();
    }
    //导出的单据文件是实时生产的，每次都不一样。
    SubmitModel.exportDocuments(context, true, _type, subData: _subData)
        ?.then((value) {
      if (value.isSuccessForCode()) {
        if (value.MsgDetail != null && value.MsgDetail!.length > 0) {
          Toast.showSuccess(value?.MsgDetail, context); //fixme 优先提示服务器提示信息。
        } else {
          Toast.showSuccess(
              AppStrings.of(context).ExportDocumentsSuccess, context); //导出单据成功
        }
        var url = value.Data?.replaceAll("~", Url.baseurl()); //文档地址
        //print("文档地址：$url");
        FileUtils.openFile(context, url, response: (value) {
          FileManager.addFile(value);
          AuditManager.getAuditManager().setDetailsWithAuto(false,
              "review_submitted_export.dart"); //fixme 审核详情页面提交结束，可以显示通知信息。
        }); //打开文件
      } else {
        //提示错误信息
        AppDialog.showDialogWithInfo(context, content: value.MsgDetail);
        AuditManager.getAuditManager().setDetailsWithAuto(
            false, "review_submitted_export.dart"); //fixme 审核详情页面提交结束，可以显示通知信息。
      }
    });
  }

}
